package org.jeecg.modules.enmu;

public enum MessageTypeEnum {
    // 登录请求
    LOGIN(101, "登录请求"),
    // 登录响应
    LOGIN_ACK(102, "登录响应"),
    // 登出请求
    LOGOUT(103, "登出请求"),
    // 登出响应
    LOGOUT_ACK(104, "登出响应"),
    // 用户请求实时数据
    SET_DYN_ACCESC_MODE(401, "请求实时数据方式设置"),
    // 用户请求实时数据响应
    DYN_ACCESC_MODE_ACK(402, "实时数据响应"),
    // 用户请求告警信息
    SET_ALARM_MODE(501, "请求告警数据方式设置"),
    // 用户请求告警信息响应
    ALARM_MODE_ACK(502, "用户请求告警信息响应"),
    // 用户写数据动作
    SEND_ALARM(503, "实时告警发送"),
    SEND_ALARM_ACK(504, "实时告警发送确"),
    SET_POINT(1001, "写数据请求"),
    SET_POINT_ACK(1002, "写数据响应"),
    MODIFY_PA(1101, "改口令请求"),
    // 模块状态响应
    MODIFY_PA_ACK(1102, "改口令响应"),
    // IME检查请求
    TIME_CHECK(1301, "发送时钟消息"),
    // IME检查响应
    TIME_CHECK_ACK(1302, "时钟同步响应"),
    // 动态加速度请求
    HEART_BEAT(1201, "确认连接"),
    // 模块状态请求
    HEART_BEAT_ACK(1202, "回应连接");


    // 动态加速度响应


    private final int value;
    private final String description;

    MessageTypeEnum(int value, String description) {
        this.value = value;
        this.description = description;
    }

    public int getValue() {
        return value;
    }

    public String getDescription() {
        return description;
    }

    public static MessageTypeEnum fromValue(int value) {
        for (MessageTypeEnum type : MessageTypeEnum.values()) {
            if (type.getValue() == value) {
                return type;
            }
        }
        throw new IllegalArgumentException("Invalid message type value: " + value);
    }
}